Custom Packages & Local XBPS Repositories
This document explains how to include custom local .xbps binary packages into Void-Builder images.
The custom_packages/ Directory
Void-Builder automatically monitors the custom_packages/ directory at the project root:
/iso-builder/pepvoid-builder/custom_packages/
├── calamares/ # Source template for Calamares package
├── python3-customtkinter/ # Source template for Python library package
├── python3-darkdetect/ # Source template for Python library package
├── python3-plyer/ # Source template for Python library package
├── python3-pystray/ # Source template for Python library package
├── my-package-1.0_1.x86_64.xbps
└── my-tool-2.1_1.x86_64.xbps
Automatic Repository Indexing
When VoidEngine.install_packages() runs:
Checks if
custom_packages/contains any.xbpspackage files.If found, automatically executes
xbps-rindex -a custom_packages/*.xbpsto buildx86_64-repodata(or target architecture index).Prepends
custom_packages/to the repository priority list at position0.Allows
xbps-installto resolve and install your custom packages during chroot provisioning.
Creating Custom Packages with xbps-src
If you are developing custom applications or modified Void packages:
Clone
void-packages:git clone https://github.com/void-linux/void-packages.git cd void-packages ./xbps-src binary-bootstrap
Create package template in
srcpkgs/<my-package>/template.Compile package:
./xbps-src pkg <my-package>
Copy compiled
.xbpsfile intocustom_packages/:cp hostdir/binpkgs/<my-package>-*.xbps /path/to/void-builder/custom_packages/
Run build:
sudo python3 cli.py x86_64 -p my-package --mode real
Automated Python library builds
The four Pepvoid Python library templates can be compiled together through
the same isolated xbps-src pipeline used by Calamares:
python3 cli.py --build-python-packages
To compile them and install the resulting packages in an ISO build, use:
sudo python3 cli.py x86_64 --with-python-packages --mode real
This explicitly rebuilds the Python packages, selects the python-libraries
software profile, and publishes the indexed local repository before package
installation. To reuse packages already indexed in custom_packages/, use:
sudo python3 cli.py x86_64 --with-python-packages --with-custom-repo --mode real
--with-custom-repo adds custom_packages/ as a repository and skips the
Python compilation step when all requested archives for the target architecture
are available. --build-python-packages always forces a fresh compilation.